#include "affichageMenus.cpp"
#include "gestionBillets.cpp"
#include "gestionCapitaines.cpp"
#include "gestionSeconds.cpp"
#include "gestionMatelots.cpp"
#include "gestionVoyageurs.cpp"
#include "gestionNavires.cpp"
#include "gestionTrajets.cpp"
#include "gestionTraversees.cpp"
#include "gestionPorts.cpp"


void BoucleMenuTrajet()
{
    //////////////////////////////////////////////////////////////////////////////////////////////
    //
    //                                       AFFICHAGE DU MENU TRAJET
    //
    // Nettoyage de la console et premier affichage du sous-menu TRAJET
    system("cls");
    choixTrajet = AfficherMenuTrajets();
    while (choixTrajet != '0')
    {
        switch (choixTrajet)
        {
            case '1' :
                // AJOUT D'UN TRAJET
                AjouterTrajet();
                break;
            case '2' :
                // SUPPRESSION D'UN TRAJET
                SupprimerTrajet();
                break;
            case '3' :
                // AFFICHAGE DES TRAJETS
                AfficherTrajets();
                break;
            case '0' :
                break;
            default :
                cout<<"  #  Choix invalide ! ";
                break;
        }
        system("cls");
        choixTrajet = AfficherMenuTrajets();
    }
}

void BoucleMenuCapitaine()
{
    // CAPITAINES
    system("cls");
    choixCapitaine = AfficherMenuCapitaine();
    while (choixCapitaine != '0')
    {
        switch (choixCapitaine)
        {
            case '1' :
                // AJOUT D'UN CAP
                AjouterCapitaine();
                break;
            case '2' :
                // MODIFICATION D'UN CAP
                ModifierCapitaine();
                break;
            case '3' :
                // SUPPRESSION D'UN CAP
                SupprimerCapitaine();
                break;
            case '4' :
                // AFFICHAGE DES CAPS
                AfficherCapitaines();
                break;
            case '0' :
                break;
            default : break;
        }
        system("cls");
        choixCapitaine = AfficherMenuCapitaine();
    }
}
void BoucleMenuSecond()
{
    // SECONDS
    system("cls");
    choixSecond = AfficherMenuSecond();
    while (choixSecond != '0')
    {
        switch (choixSecond)
        {
            case '1' :
                // AJOUT D'UN SEC
                AjouterSecond();
                break;
            case '2' :
                // MODIFICATION D'UN SEC
                ModifierSecond();
                break;
            case '3' :
                // SUPPRESSION D'UN SEC
                SupprimerSecond();
                break;
            case '4' :
                // AFFICHAGE DES SECS
                AfficherSeconds();
                break;
            case '0' :
                break;
            default : break;
        }
        system("cls");
        choixSecond = AfficherMenuSecond();
    }
}
void BoucleMenuMatelot()
{
    // MATELOTS
    system("cls");
    choixMatelot = AfficherMenuMatelot();
    while (choixMatelot != '0')
    {
        switch (choixMatelot)
        {
            case '1' :
                // AJOUT D'UN MAT
                AjouterMatelot();
                break;
            case '2' :
                // MODIFICATION D'UN MAT
                ModifierMatelot();
                break;
            case '3' :
                // SUPPRESSION D'UN MAT
                SupprimerMatelot();
                break;
            case '4' :
                // AFFICHAGE DES MATS
                AfficherMatelots();
                break;
            case '0' :
                break;
            default : break;
        }
        system("cls");
        choixMatelot = AfficherMenuMatelot();
    }
}

void BoucleMenuPersonnel()
{
    //////////////////////////////////////////////////////////////////////////////////////////////
    //
    //                                  AFFICHAGE DU MENU PERSONNEL
    //
    system("cls");
    choixPersonnel = AfficherMenuPersonnel();
    while (choixPersonnel != '0')
    {
        switch (choixPersonnel)
        {
            case '1' :
                BoucleMenuCapitaine();
                break;
            case '2' :
                BoucleMenuSecond();
                break;
            case '3' :
                BoucleMenuMatelot();
                break;
            case '0' :
                break;
            default : break;
        }
        system("cls");
        choixPersonnel = AfficherMenuPersonnel();
    }
}

void BoucleMenuNavire()
{
    //////////////////////////////////////////////////////////////////////////////////////////////
    //
    //                                       AFFICHAGE DU MENU NAVIRE
    //
    system("cls");
    choixNavire = AfficherMenuNavires();
    while (choixNavire != '0')
    {
        switch (choixNavire)
        {
            case '1' :
                // AJOUT D'UN CAP
                AjouterNavire();
                break;
            case '2' :
                // MODIFICATION D'UN CAP
                ModifierNavire();
                break;
            case '3' :
                // SUPPRESSION D'UN CAP
                SupprimerNavire();
                break;
            case '4' :
                // AFFICHAGE DES CAPS
                AfficherNavires();
                break;
            case '0' :
                break;
            default : break;
        }
        system("cls");
        choixNavire = AfficherMenuNavires();
    }
}

void BoucleMenuPort()
{
    //////////////////////////////////////////////////////////////////////////////////////////////
    //
    //                                       AFFICHAGE DU MENU PORT
    //
    system("cls");
    choixPort = AfficherMenuPorts();
    while (choixPort != '0')
    {
        switch (choixPort)
        {
            case '1' :
                // AJOUT D'UN PORT
                AjouterPort();
                break;
            case '2' :
                // MODIFICATION D'UN PORT
                ModifierPort();
                break;
            case '3' :
                // SUPPRESSION D'UN PORT
                SupprimerPort();
                break;
            case '4' :
                // AFFICHAGE DES PORTS
                AfficherPorts();
                break;
            case '0' :
                break;
            default : break;
        }
        system("cls");
        choixPort = AfficherMenuPorts();
    }
}

void BoucleMenuVoyageur()
{
    //////////////////////////////////////////////////////////////////////////////////////////////
    //
    //                                  AFFICHAGE DU MENU VOYAGEUR
    //
    system("cls");
    choixVoyageur = AfficherMenuVoyageurs();
    while (choixVoyageur != '0')
    {
        switch (choixVoyageur)
        {
            case '1' :
                // AJOUT D'UN VOY
                AjouterVoyageur();
                break;
            case '2' :
                // MODIFICATION D'UN VOY
                ModifierVoyageur();
                break;
            case '3' :
                // SUPPRESSION D'UN VOY
                SupprimerVoyageur();
                break;
            case '4' :
                // AFFICHAGE DES VOYS
                AfficherVoyageurs();
                break;
            case '0' :
                break;
            default : break;
        }
        system("cls");
        choixVoyageur = AfficherMenuVoyageurs();
    }
}

void BoucleMenuTraversee()
{
    //////////////////////////////////////////////////////////////////////////////////////////////
    //
    //                                  AFFICHAGE DU MENU TRAVERSEE
    //
    system("cls");
    choixTraversee = AfficherMenuTraversees();
    while (choixTraversee != '0')
    {
        switch (choixTraversee)
        {

        case '1' :
            // AJOUT D'UNE TRAVERSEE
            AjouterTraversee();
            break;
        case '2' :
            // SUPPRESSION D'UNE TRAVERSEE
            SupprimerTraversee();
            break;
        case '3' :
            // AFFICHAGE DES TRAVERSEES
            AfficherTraversees();
            break;
        case '0' :
            break;
        default : break;

        }
        system("cls");
        choixTraversee = AfficherMenuTraversees();
    }
}

void BoucleMenuGestion()
{
    system("cls");
    choixGestion = AfficherMenuGestion();
    while(choixGestion != '0')
    {
        switch (choixGestion)
        {
            case '1' :
                BoucleMenuTrajet();
                break;
            case '2' :
                BoucleMenuPersonnel();
                break;
            case '3' :
                BoucleMenuNavire();
                break;
            case '0' :
                cout<<"Retour Menu Precedent";
                break;
            case '4' :
                BoucleMenuVoyageur();
                break;
            case '5' :
                BoucleMenuTraversee();
                break;
            case '6' :
                BoucleMenuPort();
                break;
            default : break;
        }
        system("cls");
        choixGestion = AfficherMenuGestion();
    }
}

void BoucleMenuBilleterie()
{
    system("cls");
    choixBilleterie = AfficherMenuBilleterie();
    while(choixBilleterie != '0')
    {
        switch (choixBilleterie)
        {
            case '1' :
                AjouterBillet();
                break;
            case '2' :
                AfficherBillets();
                break;
            default : break;
        }
        system("cls");
        choixBilleterie = AfficherMenuBilleterie();
    }
}

void NavigationGenerale()
{
    // Navigation au niveau du menu principal
    switch(choixGeneral)
    {
        case '1' :
            BoucleMenuGestion();
            break;
        case '2' :
            BoucleMenuBilleterie();
            break;
    }
    system("cls");
    choixGeneral = AfficherMenuPrincipal();
}
